import os
import sys
from pathlib import Path


def get_project_root():
    """获取项目根目录"""
    # 方法1: 检查环境变量
    env_root = os.getenv('AUDIO_PROCESSOR_ROOT')
    if env_root and Path(env_root).exists():
        return Path(env_root)

    # 方法2: 打包环境
    if getattr(sys, 'frozen', False):
        return Path(sys.executable).parent

    # 方法3: 开发环境 - 从当前文件向上查找
    current_file = Path(__file__)
    for parent in current_file.parents:
        if (parent / 'main.py').exists() or (parent / 'APS').exists():
            return parent

    # 方法4: 使用当前工作目录
    return Path.cwd()


def get_aps_path():
    """获取APS目录路径"""
    project_root = get_project_root()
    aps_path = project_root / "APS"

    # 如果APS目录不存在，尝试创建
    if not aps_path.exists():
        print(f"APS目录不存在，尝试创建: {aps_path}")
        aps_path.mkdir(exist_ok=True)

    return aps_path